Enhanced polling method for preventing deadlock in a wireless communications system

ABSTRACT

A method of polling in a wireless communications system includes prohibiting polling within a predetermined period and triggering a poll function while polling is prohibited. After the predetermined period has expired the method determines that there are no protocol data units (PDUs) scheduled for transmission or re-transmission and that the poll function was triggered by a “Every Poll_PDU PDU” trigger, and selects a PDU to schedule for re-transmission to fulfill the poll function.

CROSS REFERENCE TO RELATED APPLICATIONS

This is a continuation application of application Ser. No. 11/161,356,filed Aug. 1, 2005, which claims the benefit of U.S. ProvisionalApplication No. 60/522,324, filed on Sep. 15, 2004, the contents ofwhich are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to wireless communications. Moreparticularly, the present invention relates to an enhanced pollingmechanism and device in a 3GPP wireless communications system.

2. Description of the Prior Art

The surge in public demand for wireless communication devices has placedpressure upon industry to develop increasingly sophisticatedcommunications standards. The 3^(rd) Generation Partnership Project(3GPP™) is an example of such a new communications protocol. The 3rdGeneration Partnership Project (3GPP) specification, 25.322 V6.1.0(2004-06) Radio Link Control (RLC) protocol specification (referred tohereinafter as 3GPP TS 25.322), included herein by reference, provides atechnical description of a Universal Mobile Telecommunications System(UMTS), and data transmission control protocols thereof.

These standards utilize a three-layer approach to communications. Pleaserefer to FIG. 1. FIG. 1 is a block diagram of three layers in such acommunications protocol. In a typical wireless environment, a firststation 10 is in wireless communications with one or more secondstations 20. An application 13 on the first station 10 composes amessage 11 and has it delivered to the second station 20 by passing themessage 11 to a layer-3 interface 12. The layer-3 interface 12 may alsogenerate some layer-3 signaling messages 14 for the purpose ofcontrolling layer-3 operations. The layer-3 interface 12 delivers eitherthe message 11 or the layer-3 signaling message 14 to a layer-2interface 16 in the form of layer-2 service data units (SDUs) 15. Thelayer-2 SDUs 15 may be of any length. The layer-2 interface 16 composesthe SDUs 15 into one or more layer-2 protocol data unit(s) (PDU) 17.Each layer-2 PDU 17 is of a fixed length, and is delivered to a layer-1interface 18. (The required length of PDUs within a given communicationssystem is dictated by the RLC layer of a transmitting station inaccordance with above cited reference.) The layer-1 interface 18 is thephysical layer, transmitting data to the second station 20. Thetransmitted data is received by the layer-1 interface 28 of the secondstation 20 and reconstructed into one or more PDUs 27, which is/arepassed up to the layer-2 interface 26. The layer-2 interface 26 receivesthe PDUs 27 and builds up one or more layer-2 SDU(s) 25 from the PDUs27. The layer-2 SDUs 25 are passed up to the layer-3 interface 22. Thelayer-3 interface 22, in turn, converts the layer-2 SDUs 25 back intoeither a message 21, which should be identical to the original message11 that was generated by the application 13 on the first station 10, ora layer-3 signaling message 24, which should be identical to theoriginal signaling message 14 generated by the layer-3 interface 12, andwhich is then processed by the layer-3 interface 22. The receivedmessage 21 is passed up to an application 23 on the second station 20.(As a note regarding terminology used throughout this disclosure, a PDUis a data unit that is used by a layer internally to transmit to, and/orreceive from, a lower layer, whereas an SDU is a data unit that ispassed up to, and/or received from, an upper layer.)

There are three possible data transmission modes falling under theauspices of the abovementioned protocol specification, transparent mode(TM), acknowledged mode (AM) and unacknowledged mode (UM). As thepresent invention relates only to AM transmission, the scope of theprior art discussion herein is therefore limited to background relevantto AM transmission.

Acknowledged Mode transmission is so called because a transmittingstation requires acknowledgement from a receiving station, confirmingthat a message or part of a message has been successfully received.Based upon such information returned from the receiving station, thetransmitting station either continues to transmit further packetizeddata as described above, or retransmits unconfirmed portions ofpreviously transmitted data. The extra effort required to employ thistransmission mode carries an additional overhead in terms oftransmission airtime and system requirements. The RLC layer of thetransmitting station therefore minimizes the impact of theabovementioned overhead. This is managed by carefully controlling thenumber of requests made to the receiving station for confirmationmessages, i.e. status reports. Status reports are requested, or‘polled’, by the transmitting station setting a poll bit in the headerof a protocol data unit (PDU) to be transmitted. Please refer to FIG. 2.FIG. 2 is a block diagram showing the make-up of an acknowledged modedata (AMD) PDU 30. The AMD PDU 30 comprises a predefined number ofoctets, i.e. 8-bit binary words, as each AMD PDU within a givencommunications system is of a fixed length as mentioned above. The firstoctet 31 of the AMD PDU 30 is composed of a data/control (D/C) bit 310,this being used to indicate the PDU type, i.e. either ‘data’ or‘control’, and the first seven bits of the twelve-bit PDU sequencenumber (SN) 311. The second octet 32, is composed of five further bitsof the SN 320, the poll bit 321, and the header extension (HE) bits 322.The twelve-bit SN is used by receiving stations to accuratelyre-construct original messages from received PDUs, while the HE bits(there are two) are used to indicate whether the following octet, i.e.the third octet 33, is a data byte or a length indicator (LI) withextension bit. In the example AMD PDU 30 shown, the third octet 33 is anLI 330 with an extension bit 331; the LI 330 is used to map the positionwithin the PDU 30 of the last byte of an SDU contained in the data block35. More than one LI may be included in an AMD PDU, therefore theextension bit 331, is included to indicate whether the following octetis a data byte or another LI with extension bit. Hence there may be anumber of LIs between the first LI 330 and the last LI 340. Because eachPDU must conform to a predefined length, the PDU 30 may not beforeshortened even if there is insufficient data 35 to completely fillthe required number of octets, hence padding 36 is inserted into theremaining octets.

Of particular relevance is the poll bit 321, which is used to prompt thereceiving station to reply with a status report upon successful receiptof any PDU in which the poll bit is set. Please refer to FIG. 3, whichshows a message sequence chart representing AMD PDU transfer between atransmitting station 41 and a receiving station 42, in a communicationssystem 40 utilizing a 3-layer protocol as outlined above. A string ofPDUs 400-405 are transmitted sequentially from the transmitting station41 to the receiving station 42, the last PDU 405 being sent with pollbit set. Upon receiving the PDU 405, the receiving station 42 respondsby transmitting a status report 406 back to the transmitting station 41.

The designation of PDUs to be transmitted with poll bit set, is derivedfrom the upper layers of each RLC entity in accordance with the citedprotocol specification. The communications systems discussed herein canbe configured to trigger a poll when any of the following events occur:

1) The last PDU in the (first time) transmission buffer is transmitted.

2) The last PDU in the re-transmission buffer is transmitted.

3) Upon time-out of a ‘Poll_Timer’ function (triggers a poll functionwhen a predefined period of time has elapsed following the initiation ofa poll being sent out).

4) An ‘Every Poll_PDU’ PDU is transmitted (triggers a poll function eachtime a predefined number of PDUs have been scheduled for transmission orretransmission).

5) An ‘Every Poll_SDU’ SDU is transmitted (triggers a poll function eachtime a predefined number of SDUs have been scheduled for transmission).

6) Conditions required by the ‘Poll_Window’ function are fulfilled (i.e.a “Window based trigger” is issued, which triggers a poll function whena predefined percentage of a transmission window has been reached).

7) A predefined time period expires, i.e. a “timer based” function isconfigured (triggers a poll periodically).

In addition to the above, the upper layers may configure a timer called‘Timer_Poll_Prohibit’, which is then used to prohibit the transmissionof polls within a predetermined period. If another poll is triggeredwhile polling is prohibited by a current Timer_Poll_Prohibit function,transmission of the poll is delayed until Timer_Poll_Prohibit expires.Even if several polls were triggered while Timer_Poll_Prohibit wasactive, only one poll is transmitted when Timer_Poll_Prohibit expires.

The polling process of the prior art set forth by 3GPP TS 25.322 can besummarized as the flow diagram shown in FIG. 4:

Step 1000: Process starts.

Step 1001: The system checks if there is a new PDU to be transmitted. Ifthere is, the process proceeds to Step 1010. Otherwise, the processproceeds to Step 1002.

Step 1002: The system checks if there is negatively acknowledged PDU tobe retransmitted. If there is, the process proceeds to Step 1011.Otherwise, the process proceeds to Step 1003.

Step 1003: The system checks if a polling function has been triggered.If yes, the process proceeds to Step 1004. Otherwise, the processterminates via Step 1017.

Step 1004: The system checks if polling is prohibited. If polling is notprohibited, the process proceeds to Step 1005. Otherwise, the processterminates via Step 1017.

Step 1005: A polling function is activated and the polling bit of thenext PDU to be transmitted is set to 1.

Step 1006: The system checks if there is no PDU scheduled fortransmission or retransmission. If the checking result is yes, theprocess proceeds to Step 1007. Otherwise, the process terminates viaStep 1017.

Step 1007: The system checks if the polling function checked at Step1003 was triggered by “Poll timer” or “Timer based”. If yes, the processproceeds to Step 1008. Otherwise, the process terminates via Step 1017.

Step 1008: The system selects a suitable PDU for retransmission to carrythe poll.

Step 1009: The system schedules the selected PDU for transmission. Theprocess proceeds to Step 1016.

Step 1010: The system schedules the new PDU for transmission. Theprocess proceeds to Step 1012.

Step 1011: The system schedules the negatively acknowledged (NACKed) PDUfor retransmission.

Step 1012: The system checks if a polling function has been triggered.If yes, the process proceeds to Step 1013. Otherwise, the processproceeds to Step 1015.

Step 1013: The system checks if polling is prohibited. If polling isprohibited, the process proceeds to Step 1015. Otherwise, the processproceeds to Step 1014.

Step 1014: A polling function is activated and the polling bit of thenext PDU to be transmitted is set to 1.

Step 1015: Polling function is not activated and the polling bit of thenext PDU to be transmitted is set to 0.

Step 1016: The system submits the PDU to lower layer for transmission.

Step 1017: Process ends.

Please refer to FIG. 5, which illustrates the above features via asimilar message sequence chart to FIG. 3, and retaining like indexnumbers where appropriate. Assume that transmitting stationconfiguration is determined by upper RLC layers such that the followingfive poll triggers are enabled:

(1) “Last PDU in buffer (for first time transmission)”;

(2) “Last PDU in Retransmission buffer”;

(3) “Poll timer” (with Timer_Poll=200 ms);

(4) “Every Poll_PDU PDU” (with Poll_PDU=4); and

(5) “Every Poll_SDU SDU” (with Poll_SDU=4).

Assume also that the ‘Window based’ trigger and ‘Timer based’ triggerare disabled, that the poll prohibit function is configured withTimer_Poll_Prohibit=250 ms, that one SDU is requested for transmissionby an upper layer and an RLC transmission confirmation is requested bythe upper layer when transmission of the SDU is positively acknowledged,and that the SDU is segmented into six PDUs.

The transmitting station 41 will transmit the six PDUs 400˜405 (havingsequential SNs: 0, 1, 2, 3, 4 and 5 for example) in sequence. Whenscheduling the fourth PDU 403 (SN=3) for transmission, the “EveryPoll_PDU PDU” poll trigger will be activated and poll bit of the fourthPDU consequently set. The Timer_Poll 45 (200 ms) and Timer_Poll_Prohibit43 (250 ms) functions are commenced simultaneously when PDU 403 (SN=3)is transmitted via lower layers. The transmitter continues to schedulethe fifth (SN=4) and sixth (SN=5) PDUs, 404 & 405 respectively, fortransmission. When PDU 405 (SN=5) is transmitted, the “Last PDU inbuffer” trigger is activated since there are no more PDUs to betransmitted, however, the poll trigger 48 is delayed because the pollprohibit function (Timer_Poll_Prohibit), according to the prior art, isstill in effect, hence the sixth and last PDU 405 is transmitted withoutits poll bit set. Suppose that the third PDU 402 (SN=2) is lost duringradio transmission. When the receiving station receives the fourth PDU(which has its poll bit set), the receiving station accordinglytransmits a status report 406, in this case to positively acknowledgethat PDUs having SN values 0, 1 and 3, i.e. PDUs 400, 401 and 403 havebeen received successfully, but negatively acknowledging PDU 402 (SN=2).Suppose that the status report 406 is lost during radio transmission.

At a time 46, the Timer_Poll function 45 completes its countdown,however, because Timer_Poll_Prohibit 43 is still active, a poll trigger49 that would otherwise be issued by the Timer_Poll function 45 is alsodelayed. When Timer_Poll_Prohibit 43 expires at a time 44, even thoughthere are two active delayed poll triggers (48 and 49), only one poll isissued and sent with a PDU 402 a, which is a re-transmission of aselected PDU 400 (SN=0) that has not yet been acknowledged yet (becausethe status report is lost). Upon receiving the PDU 402 a, the receivingstation 42 responds by transmitting a status report 407 to thetransmitting station 41 to positively acknowledge PDUs having SN 0, 1,3, 4 and 5 and to negatively acknowledge PDU having SN 2. The prior artmethod can then retransmit the PDU 402 (SN=2) with its poll bit set (notshown in FIG. 5) and proceed smoothly in this case.

In FIG. 5, wherein there were no negatively acknowledged PDUs norfurther SDUs requiring transmission and polling is not prohibited afterTimer_Poll_Prohibit expires, the ‘timer based’ initiated poll would besent with a re-transmission of a suitable PDU as described in Steps1008, 1009 and 1016 in FIG. 4. The suitable PDU can be a PDU withSN=VT(S)−1, i.e. the sequentially last PDU that had been transmitted atleast once (for example, PDU 405 in FIG. 5). VT(S) is a ‘send state’variable that is maintained by the transmitting station; it isincremented (by one) each time a PDU is transmitted for the first time,however, it is not incremented if a PDU is re-transmitted.

In addition to the SN=VT(S)−1 PDU, in cases where“Configured_TX_Window_Size” is less than 2048, i.e. half the amount ofdifferent numbers that can be represented by a 12-bit SN, any PDU thathas not yet been acknowledged (for example, PDUs 400, 401, 402, 403 and404 in FIG. 5) can be selected as the suitable PDU and scheduled forretransmission in order to carry the poll. ‘Transmission window size’relates to parameters for the maximum number of PDUs, (in effect, awindow size), that the transmitting station can transmit (and that thereceiving station can receive) without receiving some form of statusmessage from the receiving station. Again, the upper layers configurethis parameter.

Unfortunately, there are situations allowable in the prior art whereby‘deadlock’ may arise. Please consider the following example, whichassumes the same initial conditions as the example shown by FIG. 5above, i.e. that a transmitter is configured by upper layers to enablethe following five poll triggers:

(1) “Last PDU in buffer (for first time transmission)”;

(2) “Last PDU in Retransmission buffer”;

(3) “Poll timer” (with Timer_Poll=200 ms);

(4) “Every Poll_PDU PDU” (with Poll_PDU=4); and

(5) “Every Poll_SDU SDU” (with Poll_SDU=4).

Again, as for the example shown by FIG. 5 above, assume also that the‘Window based’ trigger and ‘Timer based’ trigger are disabled, that thepoll prohibit function is configured with Timer_Poll_Prohibit=250 ms,that one SDU is requested for transmission by an upper layer and an RLCtransmission confirmation is requested by the upper layer whentransmission of the SDU is positively acknowledged, and that the SDU issegmented into six PDUs.

Please refer to FIG. 6, which illustrates the present example. Thetransactions between the transmitting station 41 and the receivingstation 42 are identical to the example shown by FIG. 5 regarding theinitial transmission of PDUs 400˜405, except that in this example thestatus report 406 positively acknowledges PDUs 400˜403 (SNs 0˜3) and thetransmitting station 41 receives the status report successfully.According to the prior art, this has the affect of cancelling theTimer_Poll function 45 at a time 47, and although a “Last PDU in buffer”poll trigger delayed until a time 44, no PDU will be scheduled fortransmission/re-transmission. This is because, in this case, there areno more SDUs (and hence, no more PDUs) to be transmitted, no negativelyacknowledged PDUs to be re-transmitted, and a PDU with SN=VT(S)−1 mayonly be scheduled when a poll delayed by Timer_Poll_Prohibit isinitiated by ‘poll timer’ or ‘timer based’ functions according to Steps1006 and 1007 in FIG. 4. As the Timer_Poll function 45 is cancelled andno timer based function is configured, these conditions can not be met,and hence according to the prior art set forth by 3GPP TS 25.322 or byFIG. 4 above, the transmitting station 41 will remain idle followingreceipt of the abovementioned status report 406, without scheduling anyPDUs for transmission or retransmission, i.e. there is no furthertraffic with which to transmit a poll. Without a status reportacknowledging the successful receipt of the fifth and sixth PDUs, RLCtransmission confirmation cannot be sent to the upper layers,consequently RLC layers at both the transmitter and the receiverstations cannot proceed to any further operations, i.e. the RLC layersare deadlocked.

There is a need then for a method which, when implemented in a 3GPPradio communications system, will circumvent the abovementioned RLClayer deadlock situation.

SUMMARY OF THE INVENTION

A method of polling in a wireless communications system includesprohibiting polling within a predetermined period and triggering a pollfunction while polling is prohibited, wherein the poll function istriggered by an “every predetermined number of PDUs” trigger thattriggers the poll function when every predetermined number of PDUs arescheduled for transmission or re-transmission. After the predeterminedperiod has expired the method determines that there are no protocol dataunits (PDUs) scheduled for transmission or re-transmission, and selectsa PDU to schedule for re-transmission to fulfill the triggered pollfunction.

These and other objectives of the present invention will no doubt becomeobvious to those of ordinary skill in the art after reading thefollowing detailed description of the preferred embodiment that isillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of the three layers typical of acommunications system according to the 3^(rd) Generation PartnershipProject (3GPP™) communications protocol.

FIG. 2 is a block diagram showing an example of an acknowledged modedata protocol data unit (AMD PDU) according to the prior art.

FIG. 3 is a message sequence chart representing AMD PDU transfer betweena transmitting station and a receiving station according to the priorart.

FIG. 4 is a flow diagram of the polling process according to the priorart.

FIG. 5 is a message sequence chart representing AMD PDU transfer betweena transmitting station and a receiving station according to the priorart.

FIG. 6 is a message sequence chart representing an example of deadlockin a wireless communications system according to the prior art.

FIG. 7 is a message sequence chart representing a preferred embodimentmethod of AMD PDU transfer according to the present invention.

FIG. 8 is a flow diagram of a preferred embodiment of the presentinvention method.

DETAILED DESCRIPTION

In order to overcome the prior art problems described above, a preferredembodiment method of the present invention is described by examplebelow.

Assuming the configuration of the transmitting and the receivingstations is the same as that given in the prior art examples illustratedby FIGS. 5 and 6 above, i.e. the transmitter is configured by upperlayers to enable the following five poll triggers:

(1) “Last PDU in buffer (for first time transmission)”,

(2) “Last PDU in Retransmission buffer”,

(3) “Poll timer” (with Timer_Poll=200 ms),

(4) “Every Poll_PDU PDU” (with Poll_PDU=4), and

(5) “Every Poll_SDU SDU” (with Poll_SDU=4).

And also assuming that: ‘window based’ triggers and ‘timer based’triggers are disabled, the poll prohibit function is configured withTimer_Poll_Prohibit=250 ms, one SDU is requested for transmission by anupper layer and an RLC transmission confirmation is requested by theupper layer when transmission of the SDU is positively acknowledged, andthat the SDU is segmented into eight PDUs (having sequential SNs: 0, 1,2, 3, 4, 5, 6 and 7).

In the example illustrated by FIG. 7, the receiving station 72successfully receives all four PDUs 700˜703 (SN=0˜3) wherein the fourthPDU 703 (SN=3) is received with a poll, and sends a status PDU 710positively acknowledging the PDUs having SNs=0˜3. The transmittingstation 71 receives this status report 710 successfully at a time 77before the current instance of the Timer_Poll function 75 expires,thereby canceling the Timer_Poll function 75, thus no poll is issued atthe time 76 when the Timer_Poll function 75 countdown was due to expire.When the transmitting station 71 transmits the PDU 707 having SN=7, apoll is triggered by the “Every Poll_PDU PDU”, wherein Poll_PDU isconfigured to be 4, but this poll is delayed because poll is prohibitedwhen the PDU 707 is sent out. However, when the Timer_Poll_Prohibitfunction 73 expires, the transmitting station 71 finds that a delayedpoll 78 (having been triggered by a “Every Poll_PDU PDU” trigger whenPDU 707 (SN=7) was scheduled for transmission, but not sent because theTimer_Poll_Prohibit function 73 was still active) is awaitingtransmission. There are no more PDUs scheduled for transmission orre-transmission, and under the prior art scheme, no PDU can be scheduledbecause the relevant poll was not triggered by a “Poll Timer” or “Timerbased” function (Step 1007 in FIG. 4). Note also that, because theexisting Timer_Poll function 75 is canceled by the status report 710,there is no likelihood of a suitable poll trigger occurring due to the“Poll timer” function. Hence, in the method of the present invention,upon expiration of the Timer_Poll_Prohibit function 73, the type of therelevant poll is checked, i.e. whether the relevant poll is triggered bythe “Every Poll_PDU PDU” trigger. In this example, the test will bepositive and, according to the present invention method, thetransmitting station 71 will re-transmit a suitable PDU 707 a, which canbe the last PDU 707 (SN=7), this being the current SN=VT(S)−1 PDU withpoll bit set. When the receiving station 72 receives the re-transmissionof the PDU 707 (SN=7), i.e., the PDU 707 a, this time including a poll,the receiving station 72 will send a status report 712 to positivelyacknowledge the successful receipt of all PDUs up to and including SN=7.Upon receiving the status report 712, the transmitting station 71 cansend confirmation of SDU receipt to the upper layer (not shown in FIG.7) so that the upper layer can proceed to subsequent processes, thusavoiding the deadlock situation inevitable under the prior art scheme.Thus, employing the method of the current invention can circumvent thedeadlock shown to occur when the prior art method is applied to such ascenario.

The present invention method can be implemented as software or firmwarein a wireless communications system, incorporated in the architectureof, for example, a monolithic communications microchip for use in thesame, or realized in the structure of supporting discrete orprogrammable logic device(s). The present invention method can besummarized in the following process (FIG. 8 refers):

In FIG. 8, Step 1007 is FIG. 4 is replaced by 1007 a. In other words, ifthe polling function checked at Step 1003 is triggered by the “EveryPoll_PDU PDU” trigger, the system retransmits a suitable PDU to carrythe poll bit. Only Step 1007 a is described below since all the othersteps are exactly the same as those in FIG. 4.

Step 1007 a: The system checks if the polling function was triggered bya “Every Poll_PDU PDU” trigger. If the checking result is yes, theprocess proceeds to Step 1008. Otherwise, the process terminates viaStep 1017.

Those skilled in the art will readily observe that numerousmodifications and alterations of the device and method may be made whileretaining the teachings of the invention. Accordingly, the abovedisclosure should be construed as limited only by the metes and boundsof the appended claims.

What is claimed is:
 1. A method of polling in a wireless communicationssystem that employs protocol data units (PDUs) and service data units(SDUs), the method comprising: prohibiting polling within a firstpredetermined period; activating a poll function trigger while pollingis prohibited, wherein the poll function trigger is an “Every Poll PDUPDU” trigger that is activated when every predetermined number of PDUsare scheduled for transmission or re-transmission; and after the firstpredetermined period has expired, determining that there are no PDUsscheduled for transmission or re-transmission and that there is at leasta transmitted PDU that is not acknowledged yet; selecting a PDU toschedule for re-transmission to fulfill the poll function; wherein thereis no poll function activated by a Poll timer trigger during the firstpredetermined period; wherein there is no poll function activated by aTimer based trigger during the first predetermined period; wherein thePoll timer trigger is defined as an event that activates a poll functionwhen a second predetermined period has elapsed following an initiationof a poll being sent out; and wherein the Timer based trigger is definedas an event that activates a poll function periodically.
 2. The methodof claim 1, wherein the selected PDU is a PDU that is sequentially lastPDU that has been transmitted at least once.
 3. The method of claim 1,wherein the selected PDU is a PDU that has been transmitted but not yetacknowledged when a transmission window size is less than half the valueof a space of sequence numbers of PDUs in the communications system.